#ifndef ACTIVEGHOST_H_
#define ACTIVEGHOST_H_

#include <iostream>

#include "../Ghost.h"
#include "../SimulatorRegister.h"

class ActiveGhost : public Ghost
{
public:
    
    ActiveGhost(Position position, SimulatorRegister * registration = 0) : Ghost(registration)
    {

    
    };
    
    virtual ~ActiveGhost(){};

    void onNewUniverse(SimulatorRegister * registration)
    {
//        this->requestSpawn(spawnPosition); 
    };

    virtual void onCollide(const Ghost * ghost) = 0;
    virtual void onContact(const Ghost * ghost) = 0;    
    virtual void spawn() = 0;
    virtual void die() = 0;
    
    void printPosition()
    {
        std::cout << "Curren position (x,y)" 
                  << this->getPosition().X << ","
                  << this->getPosition().Y << std::endl;    
    };
    

};

#endif /*ROBOT_H_*/

